using System;

namespace Atomic.Thermodynamics
{
	/// <summary>
	/// A thermodynamic potential depending only on temperature (the volume/pressure dependence is unspecified). This is used
	/// to represent the contribution from thermal excitations of electrons or phonons.
	/// </summary>
	public interface IPotential
	{
		/// <summary>
		/// The free energy (eV) as a function of temperature (K).
		/// </summary>
		double FreeEnergy(double temperature);

		/// <summary>
		/// The entropy (eV/K) as a function of temperature (K).
		/// </summary>
		double Entropy(double temperature);

		/// <summary>
		/// The heat capacity (eV/K) as a function of temperature (K).
		/// </summary>
		double HeatCapacity(double temperature);
	}
}
